/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.cpal.entrenamiento.controller;

import com.cpal.entrenamiento.entity.Categoria;
import com.cpal.entrenamiento.entity.Ejercicio;
import com.cpal.entrenamiento.entity.Palabra;
import com.cpal.entrenamiento.entity.SubCategoria;
import com.cpal.entrenamiento.entity.Tarea;
import com.cpal.entrenamiento.service.IEjercicioService;
import com.cpal.entrenamiento.service.IElaborarMaterialService;
import com.cpal.entrenamiento.service.IPalabraService;
import com.cpal.entrenamiento.service.impl.EjercicioService;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.select.SelectorComposer;
import org.zkoss.zk.ui.select.annotation.Listen;
import org.zkoss.zk.ui.select.annotation.VariableResolver;
import org.zkoss.zk.ui.select.annotation.Wire;
import org.zkoss.zk.ui.select.annotation.WireVariable;
import org.zkoss.zk.ui.util.Clients;
import org.zkoss.zul.Combobox;
import org.zkoss.zul.Grid;
import org.zkoss.zul.ListModelList;
import org.zkoss.zul.Spinner;
import org.zkoss.zul.Textbox;
import org.zkoss.zul.Window;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zul.Comboitem;
import org.zkoss.zul.Window;

/**
 *
 * @author avilca
 */
@VariableResolver(org.zkoss.zkplus.spring.DelegatingVariableResolver.class)
public class BuscarEjercicioViewController extends SelectorComposer<Component> {

    private static final long serialVersionUID = 1L;
    @Wire
    Window modalDialogEjercicio;
    @Wire
    Combobox cmbCategoria;
    @Wire
    Combobox cmbSubCategoria;
    @Wire
    Combobox cmbTarea;
    @Wire
    Combobox cmbDificultad;
    @Wire
    Textbox txtCodigo;
    @Wire
    Textbox txtDescripcion;
    @Wire
    Grid grEjercicio;
    @WireVariable
    IEjercicioService ejercicioService;
    @WireVariable
    IElaborarMaterialService elaborarMaterialService;

    @Override
    public void doAfterCompose(Component comp) throws Exception {
        super.doAfterCompose(comp); //To change body of generated methods, choose Tools | Templates.

        ListModelList<Categoria> categoriaModel = new ListModelList<Categoria>(ejercicioService.obtenerCategoria());
        cmbCategoria.setModel(categoriaModel);


    }

    @Listen("onClick = #btnCloseEjercicio")
    public void showModalPaciente(Event e) {
        modalDialogEjercicio.detach();
    }

    @Listen("onChange = #cmbCategoria")
    public void showSubCategoria(Event e) throws Exception {

        System.out.println("entro a combo subcategoria  ");
        System.out.println("valor categoria: " + cmbCategoria.getSelectedItem().getValue());
        int categoriaValue = cmbCategoria.getSelectedItem().getValue();
        ListModelList<SubCategoria> subCategoriaModel = new ListModelList<SubCategoria>(ejercicioService.obtenerSubCategoria(categoriaValue));
        cmbSubCategoria.setModel(subCategoriaModel);
    }

    @Listen("onChange = #cmbSubCategoria")
    public void showSubTarea(Event e) throws Exception {

        System.out.println("entro a combo tarea  ");
        System.out.println("valor SubCategoria: " + cmbSubCategoria.getSelectedItem().getValue());
        int subCategoriaValue = cmbSubCategoria.getSelectedItem().getValue();
        ListModelList<Tarea> tareaModel = new ListModelList<Tarea>(ejercicioService.obtenerTarea(subCategoriaValue));
        cmbTarea.setModel(tareaModel);
    }

    @Listen("onClick = #btnBuscar")
    public void showEjercicio(Event e) throws Exception {

        System.out.println("entro a buscar ejercicio  ");
        System.out.println("valor categoria: " + cmbCategoria.getSelectedItem().getValue());
        System.out.println("valor SubCategoria: " + cmbSubCategoria.getSelectedItem().getValue());
        System.out.println("valor tarea: " + cmbTarea.getSelectedItem().getValue());
        System.out.println("valor dificultad: " + cmbDificultad.getSelectedItem().getValue());
        System.out.println("valor codigo: " + txtCodigo.getValue());
        System.out.println("valor descripcion: " + txtDescripcion.getValue());

        
        String dificultad = cmbDificultad.getSelectedItem().getValue();
        int codigoTarea = cmbTarea.getSelectedItem().getValue();
        String descripcion = txtDescripcion.getValue();
        String codigoEjercicio = txtCodigo.getValue();
        Ejercicio ejercicio = new Ejercicio();
        if(null!=codigoEjercicio && !codigoEjercicio.isEmpty()){
            ejercicio.setCodigo(Integer.valueOf(codigoEjercicio));
        }
        ejercicio.setDescripcion(descripcion);
        //dificultal ALTA, MEDIA, BAJA
        ejercicio.setDificultad(dificultad);
        Tarea tarea = new Tarea();
        tarea.setCodigo(codigoTarea);
        ejercicio.setTarea(tarea);

        System.out.println("elaborarMaterialService " +elaborarMaterialService);

        // List<Ejercicio> ejercicios = elaborarMaterialService.buscarEjercicio(ejercicio);
        ListModelList<Ejercicio> ejercicioModel=new ListModelList<Ejercicio>(ejercicioService.buscarEjercicio(ejercicio));
        grEjercicio.setModel(ejercicioModel);
        System.out.println("lstEjercicios: "+ejercicioModel);
    }

}
